/**
 * 
 */
package com.autosalon.ui.spravaPojisteni.action;

import com.autosalon.DAO.DaoFactory;
import com.autosalon.model.Poistovna;
import com.autosalon.ui.spravaPojisteni.SpravaPojisteni;
import com.autosalon.ui.spravaPojisteni.state.SpravaPojisteniStateHolder;
import com.vaadin.ui.Button.ClickEvent;

/**
 * @author Ragisel
 * 
 */
public class SavePojistovnaAction extends AbstractSpravaPojisteniAction {

	private Poistovna pojistovna;
	private final int id_role = 3;

	/**
	 * @param spravaPojisteni
	 */
	public SavePojistovnaAction(SpravaPojisteni spravaPojisteni) {
		super(spravaPojisteni);
	}

	@Override
	public void buttonClick(ClickEvent event) {

		try {
			pojistovna = new Poistovna();
			String jmeno = spravaPojisteni.getTfJmeno().getValue().toString();
			String popis = spravaPojisteni.getTfPopis().getValue().toString();
			pojistovna.setNazevPoistovny(jmeno);
			pojistovna.setDescription(popis);
			if (spravaPojisteni.getId_pojistovny() == null) {
				DaoFactory.getinstance().getPoistovna().insert(pojistovna);
				spravaPojisteni.naplnTabulkuObjednavky();
				SpravaPojisteniStateHolder.setState(
						SpravaPojisteniStateHolder.VIEW_POJISTENI_STATE, id_role,
						spravaPojisteni);
			} else {
				pojistovna.setId(spravaPojisteni.getId_pojistovny());
				DaoFactory.getinstance().getPoistovna().update(pojistovna);
				spravaPojisteni.setId_pojistovny(null);
				spravaPojisteni.naplnTabulkuObjednavky();
				SpravaPojisteniStateHolder.setState(
						SpravaPojisteniStateHolder.VIEW_POJISTENI_STATE, id_role,
						spravaPojisteni);
			}
		} catch (Exception e) {
			e.printStackTrace();
			spravaPojisteni.getWindow().showNotification("Zadané vstupy nebyly korektní. Pokuste se je prosím opravit");
			SpravaPojisteniStateHolder.setState(
					SpravaPojisteniStateHolder.EDIT_POJISTOVNA_STATE, id_role,
					spravaPojisteni);
		}

	}

}
